package cn.scw.project.facility.domain;

import cn.scw.framework.aspectj.lang.annotation.Excel;
import cn.scw.framework.web.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 打印订单对象 fac_print_order
 *
 * @author api
 * @date 2020-05-20
 */
public class FacPrintOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String number;

    /**
     * 设备编号
     */
    @Excel(name = "设备编号")
    private String facilityCode;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    private Long userId;

    /**
     * 单价
     */
    @Excel(name = "单价")
    private double price;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额")
    private double money;

    /**
     * 实付金额
     */
    @Excel(name = "实付金额")
    private double payMoney;

    /**
     * 优惠券id
     */
    @Excel(name = "优惠券id")
    private Long couponId;

    /**
     * 打印类型（照片，文档）
     */
    @Excel(name = "打印类型", readConverterExp = "照片，文档")
    private String type;

    @Excel(name = "打印类容")
    private String content;

    /**
     * 规格，尺寸
     */
    @Excel(name = "规格，尺寸")
    private String typeCode;

    @Excel(name = "打印开始页")
    private int startPage;

    @Excel(name = "打印结束页")
    private int endPage;

    /**
     * 打印份数
     */
    @Excel(name = "打印份数")
    private int count;

    /**
     * 打印方式（横排，竖排）
     */
    @Excel(name = "打印方式", readConverterExp = "横=排，竖排")
    private String printType;

    /**
     * 打印标题（结婚照，签证照，证件照等）
     */
    @Excel(name = "打印标题", readConverterExp = "结婚照，签证照，证件照等")
    private String title;

    /**
     * 是否彩色
     */
    @Excel(name = "是否彩色")
    private boolean isColours;

    /**
     * 是否支付
     */
    @Excel(name = "是否支付")
    private boolean isPay = false;

    /**
     * 支付方式（0余额支付，1微信支付）——字典表维护
     */
    @Excel(name = "支付方式", readConverterExp = "余=额支付，微信支付")
    private String payType;

    /**
     * 支付时间
     */
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payDate;

    @Excel(name = "随行付订单号")
    private String transNo;


    @Excel(name ="第三方支付订单号")
    private String transactionId;

    /**
     * 创建日期
     */
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate = new Date();

    /**
     * 是否设备重置清零设置（1,是 0 否未清零数据）
     */
    @Excel(name = "设备清零标识", readConverterExp = "1,是清零数据不做统计 0 否未清零数据")
    private int resetStatus;

    /**
     * 清零时间
     */
    @Excel(name = "清零时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date resetDate;

    /**
     * 清零操作用户id
     */
    @Excel(name = "清零操作用户id")
    private Long resetUserId;

    /**
     * 是否打印
     */
    private boolean isPrint = false;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getFacilityCode() {
        return facilityCode;
    }

    public void setFacilityCode(String facilityCode) {
        this.facilityCode = facilityCode;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(double payMoney) {
        this.payMoney = payMoney;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public int getStartPage() {
        return startPage;
    }

    public void setStartPage(int startPage) {
        this.startPage = startPage;
    }

    public int getEndPage() {
        return endPage;
    }

    public void setEndPage(int endPage) {
        this.endPage = endPage;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getPrintType() {
        return printType;
    }

    public void setPrintType(String printType) {
        this.printType = printType;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public boolean isColours() {
        return isColours;
    }

    public void setColours(boolean colours) {
        isColours = colours;
    }

    public boolean isPay() {
        return isPay;
    }

    public void setPay(boolean pay) {
        isPay = pay;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public boolean isPrint() {
        return isPrint;
    }

    public void setPrint(boolean print) {
        isPrint = print;
    }

    public String getTransNo() {
        return transNo;
    }

    public void setTransNo(String transNo) {
        this.transNo = transNo;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public int getResetStatus() {
        return resetStatus;
    }

    public void setResetStatus(int resetStatus) {
        this.resetStatus = resetStatus;
    }

    public Date getResetDate() {
        return resetDate;
    }

    public void setResetDate(Date resetDate) {
        this.resetDate = resetDate;
    }

    public Long getResetUserId() {
        return resetUserId;
    }

    public void setResetUserId(Long resetUserId) {
        this.resetUserId = resetUserId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("facilityCode", getFacilityCode())
                .append("userId", getUserId())
                .append("price", getPrice())
                .append("money", getMoney())
                .append("payMoney", getPayMoney())
                .append("couponId", getCouponId())
                .append("type", getType())
                .append("content", getContent())
                .append("typeCode", getTypeCode())
                .append("count", getCount())
                .append("printType", getPrintType())
                .append("title", getTitle())
                .append("isColours", isColours())
                .append("isPay", isPay())
                .append("payType", getPayType())
                .append("payDate", getPayDate())
                .append("createDate", getCreateDate())
                .append("resetDate", getResetDate())
                .append("resetStatus", getResetStatus())
                .append("resetUserId", getResetUserId())

                .toString();
    }
}
